#ifndef Hardware_h
#define Hardware_h

#include <SDL/SDL.h>
#include <SDL/SDL_ttf.h>

#define Imagen SDL_Surface
#define Fuente TTF_Font
#define Color  SDL_Color

#define TECLA_ESC SDLK_ESCAPE
#define TECLA_DER SDLK_RIGHT
#define TECLA_ARR SDLK_UP
#define TECLA_ABA SDLK_DOWN
#define TECLA_IZQ SDLK_LEFT

#define TECLA_0 SDLK_0
#define TECLA_1 SDLK_1
#define TECLA_2 SDLK_2
#define TECLA_3 SDLK_3
#define TECLA_4 SDLK_4

#define TECLA_ESP SDLK_SPC

class Hardware {

 public:

    int inicializar(int ancho, int alto, int colores);

    Imagen* cargarImagen(char *fichero);

    void colorTransparente(Imagen* imagen,
          int r, int g, int b);

    int borrarPantallaOculta(int r, int g, int b);

    int dibujarImagenOculta(Imagen *imagen,
          int x,int y);

    int escribirTextoOculta(char *frase,
          int x,int y, int color, Fuente *fuente,int *tamayoY, int *tamayoX);

    int visualizarOculta();

    int botonPulsado(int c);

    int esperarTecla();

    void vaciarBufferTeclado();

    int ratonPulsado(int *x, int *y);

    int pausa(long milisegundos);

    int colision(int x1, int y1, int an1, int al1,
          int x2, int y2, int an2, int al2);

    bool comprobarRaton();

 public:
    Fuente *arial_35;
    Fuente *arial_50;

    Fuente *vinet_50;

    Imagen* pantallaOculta;
    Imagen* pantallaVisible;
    int posRatX;
    int posRatY;
    int ancho;
    int alto;
};
#endif
